<?php #coding: utf-8 æ ø å

class Vis_model extends CI_Model {

	//henter alle, af hvad der defineres - OBS - indtil nu kun lavet til entiteter
	function alle($type) 
	{
		if($type == "begivenhed")
		{
			$query = $this->db->query
			('	
				SELECT begivenhed.id, navne_begivenhed.navn
				FROM begivenhed, navne_begivenhed
				WHERE begivenhed.id = navne_begivenhed.id_begivenhed
				AND begivenhed.slettet = 0
				ORDER BY navne_begivenhed.navn
			');
			$begivenheder = array();
			foreach ($query->result() as $row)
			{ 
		   		$begivenheder[] = array(
					'id' => $row->id,
					'navn' => $row->navn
				);
			}
			return $begivenheder;
		}
		elseif($type == "deltager")
		{
			$query = $this->db->query
			('
				SELECT deltager.navn, deltager.efternavn, deltager.id
				FROM deltager
			');	
			$deltagere = array();
			foreach ($query->result() as $row)
			{ 
			   	$deltagere[] = array(
				'deltager_navn' => $row->navn,
				'deltager_efternavn' => $row->efternavn,
				'deltager_id' => $row->id
				);
			}
			return $deltagere;
		}
		elseif($type == "entitet")
		{
			$query = $this->db->query
			('	
				SELECT entitet.id, entitet.type, navne_entitet.navn
				FROM entitet, navne_entitet
				WHERE entitet.id = navne_entitet.id_entitet
				AND entitet.slettet = 0
				ORDER BY navne_entitet.navn
			');
			foreach ($query->result() as $row)
			{ 
		   		$entiteter[] = array
				(
				'id' => $row->id,
				'type' => $row->type,
				'navn' => $row->navn
				);
			}
			return $entiteter;
		}
		elseif($type == "gruppe")
		{
			$query = $this->db->query
			('	
				SELECT entitet.id, navne_entitet.navn
				FROM entitet, navne_entitet
				WHERE entitet.id = navne_entitet.id_entitet
				AND entitet.type = "gruppe"
				AND entitet.slettet = 0
				ORDER BY navne_entitet.navn
			');
			
			foreach ($query->result() as $row)
			{ 
			    $entiteter[] = array
				(
				'id' => $row->id,
				'navn' => $row->navn
				);
			}
			return $entiteter;
		}
		elseif($type == "individ")
		{
			$query = $this->db->query
			('
				SELECT navne_entitet.navn, navne_entitet.id_entitet
				FROM entitet, navne_entitet
				WHERE entitet.type = "individ"
				AND entitet.slettet = 0
				AND navne_entitet.id_entitet = entitet.id
			');	
			$individer = array();
			foreach ($query->result() as $row)
			{ 
			   	$individer[] = array(
				'navn' => $row->navn,
				'id' => $row->id_entitet
				);
			}
			return $individer;
		}
		elseif($type == "profession")
		{
			$query = $this->db->query
			("
				SELECT profession.navn, profession.id
				FROM profession
				ORDER BY profession.navn	
			");
			
			$professioner = array();
			
			foreach($query->result() as $row)
			{
				$professioner[] = array
				(
					'id' => $row->id,
					'navn' => $row->navn
				);
			}
			return $professioner;
		}
		elseif($type == "race")
		{
			$query = $this->db->query
			("
				SELECT navne_entitet.navn, navne_entitet.id_entitet
				FROM navne_entitet, entitet, race
				WHERE race.id_entitet = entitet.id 
				AND navne_entitet.id_entitet = entitet.id
				ORDER BY navne_entitet.navn	
			");
			
			$racer = array();
			
			foreach($query->result() as $row)
			{
				$racer[] = array
				(
					'id' => $row->id_entitet,
					'navn' => $row->navn
				);
			}
			return $racer;
		}
		elseif($type == "sted")
		{
			$query = $this->db->query
			('	
				SELECT sted.id, navne_sted.navn
				FROM sted, navne_sted
				WHERE sted.id = navne_sted.id_sted
				AND sted.slettet = 0
				ORDER BY navne_sted.navn
			');
			$steder = array();
			foreach ($query->result() as $row)
			{ 
		   		$steder[] = array(
					'id' => $row->id,
					'navn' => $row->navn
				);
			}
			return $steder;
		}
		else
		{
			return "fejl i modellen vis_model->alle";
		}
		
		
		
	}
	
	function deltagere($id_begivenhed)
	{
		$query = $this->db->query
		("
			SELECT navne_entitet.navn, navne_entitet.id_entitet
			FROM navne_entitet, begivenhed_entitet_knytning
			WHERE begivenhed_entitet_knytning.id_begivenhed = ".$id_begivenhed."
			AND begivenhed_entitet_knytning.id_entitet = navne_entitet.id_entitet
			ORDER BY navne_entitet.navn
		");
		
		$deltagere = array();
		
		foreach($query->result() as $row)
		{
			$deltagere[] = array
			(
				'id' => $row->id_entitet,
				'navn' => $row->navn
			);
		}
	
		return $deltagere;
	
	}
	
	function hieraki($type) //henter øverste entiteter i entitets-hierakiet
	{
		if($type == "begivenhed") // BEGIVENHED BEGIVENHED BEGIVENHED
		{
			$query = $this->db->query
			('
				SELECT begivenhed.id, element.type, navn.navn
				FROM begivenhed, navn, element
				WHERE begivenhed.id = navn.id_element
                AND begivenhed.id = element.id 
				AND element.slettet = 0
				AND begivenhed.id NOT IN (
					SELECT under_id
					FROM relation
					WHERE relation.slettet = 0
				)
				ORDER BY navn.navn
			');	

        $data = $query->result();
        return $data;



		}
		elseif($type == "entitet") // ENTITET ENTITET ENTITET
		{
			$query = $this->db->query
			('
				SELECT entitet.id, element.type, navn.navn
				FROM entitet, navn, element
				WHERE entitet.id = navn.id_element
                AND entitet.id = element.id 
				AND element.slettet = 0
				AND entitet.id NOT IN (
					SELECT under_id
					FROM relation
					WHERE relation.slettet = 0
				)
				ORDER BY navn.navn
			');	

        $data = $query->result();
        return $data;

		}
		elseif($type == "sted")
		{
			$query = $this->db->query
			('
	
			SELECT sted.id, element.type, navn.navn
			FROM sted, navn, element
			WHERE sted.id = navn.id_element
            AND sted.id = element.id 
			AND element.slettet = 0
			AND sted.id NOT IN (
				SELECT under_id
				FROM relation
				WHERE relation.slettet = 0
			)
			ORDER BY navn.navn
		');	

        $data = $query->result();
        return $data;
		}
		else
		{
			echo "fejl - type ikke defineret i vis_model->hieraki";
		}
		
		foreach ($query->result() as $row)
		{ 
		   	$oeverste_niveau[] = $row;
		}
		return $oeverste_niveau;
	}

	
	
	function stamdata($type, $id)
	{
	
		if($type == "gruppe" || $type == "individ" || $type == "npc")
		{
			$type = "entitet";		
		}
		
		$stamdata = array();
		
		$this->load->model('translation/tid_model');
		
		if($type=="begivenhed") // BEGIVENHED BEGIVENHED BEGIVENHED
		{
			
			$this->load->model('translation/tid_model');
			$query = $this->db->query
			('
    			SELECT navne_begivenhed.navn, begivenhed.birth, begivenhed.death
		   	 	FROM navne_begivenhed, begivenhed 
  			  	WHERE navne_begivenhed.id_begivenhed='.$id.' 
    			AND begivenhed.id='.$id.'
			');
			$row = $query->row();
				$stamdata = array
				(
					'id' => $id,
					'navn' => $row->navn,
					'birth_navn' => $this->tid_model->tid_navn($row->birth),
					'birth' => $row->birth, 
					'death_navn' => $this->tid_model->tid_navn($row->death),
					'death' => $row->death
				);
		}
		elseif($type == "entitet") // ENTITET ENTITET ENTITET
		{
			
			$query = $this->db->query
			('
    			SELECT navne_entitet.navn, entitet.type, entitet.profession, entitet.deltager_id, entitet.pc, entitet.birth, entitet.death, entitet.koen, entitet.level, entitet.level_start
		    	FROM navne_entitet, entitet
  			  	WHERE navne_entitet.id_entitet='.$id.' 
	   	 		AND entitet.id='.$id.'
			');
			$row = $query->row();
			if ($query->num_rows() > 0) /* Altså, hvis entiteten har et navn */
			{
				$stamdata = array
				(
					'id' => $id,
					'pc' => $row->pc,
					'deltager_id' => $row->deltager_id,
					'navn' => $row->navn,
					'type' => $row->type,
					'profession' => $row->profession,
					'birth_navn' => $this->tid_model->tid_navn($row->birth),
					'birth' => $row->birth, 
					'death_navn' => $this->tid_model->tid_navn($row->death),
					'death' => $row->death,
					'koen' => $row->koen,
					'level' => $row->level,
					'level_start' => $row->level_start
				);
			}
			
		}
		elseif($type == "sted") // STED STED STED
		{
			$this->load->model('translation/tid_model');
			$query = $this->db->query
			('
    			SELECT navne_sted.navn, sted.birth, sted.death
		   	 	FROM navne_sted, sted 
  			  	WHERE navne_sted.id_sted='.$id.' 
    			AND sted.id='.$id.'
			');
			$row = $query->row();
				$stamdata = array
				(
					'id' => $id,

					'navn' => $row->navn,
					'birth_navn' => $this->tid_model->tid_navn($row->birth),
					'birth' => $row->birth, 
					'death_navn' => $this->tid_model->tid_navn($row->death),
					'death' => $row->death
				);
		}
		return $stamdata;	
	}
	
	
	function rollespiller($id)
	{
		$query = $this->db->query
		('
			SELECT deltager.navn, deltager.efternavn, deltager.id
			FROM deltager, entitet
			WHERE entitet.deltager_id = deltager.id
			AND entitet.id = '.$id.'
		');
		if ($query->num_rows() > 0)
		{
   			$row = $query->row();
			$rollespiller = array(
				'rollespiller_navn' => $row->navn,
				'rollespiller_efternavn' => $row->efternavn,
				'rollespiller_id' => $row->id
			);
		}
		else //altså, hvis karakteren ikke har tilknyttet en rollespiller
		{
			$rollespiller = array(
				'rollespiller_navn' => "tom",
				'rollespiller_efternavn' => "tom",
				'rollespiller_id' => 0
			);
		}
		return $rollespiller;
	}
	
	function under($type, $id) //finder det der ligger under - VIRKER FOR ENTITETER OG BEGIVENHEDER
	{
		
			
		
		$under = array();
		
		if($type == "begivenhed" || $type == "sted") // BEGIVENHED BEGIVENHED BEGIVENHED
		{
			$query = $this->db->query
			('
   	    		SELECT '.$type.'_relation.under_id, navne_'.$type.'.navn
       			FROM '.$type.'_relation, navne_'.$type.', '.$type.'
       			WHERE '.$type.'_relation.over_id='.$id.' 
				AND '.$type.'.slettet = 0
				AND '.$type.'_relation.slettet = 0
				AND navne_'.$type.'.id_'.$type.'='.$type.'_relation.under_id
				AND '.$type.'.id = navne_'.$type.'.id_'.$type.'
				ORDER BY '.$type.'.birth
			');
			foreach($query->result() as $row)
    		{
				$under_id = $row->under_id;
				$under_navn = $row->navn;
				$under[]=array(
					'under_id' => $under_id,
					'under_navn' => $under_navn
				);
			}
		}
		elseif($type == "entitet") // ENTITET ENTITET ENTITET
		{
			
			$query = $this->db->query
			('
   	   		 	SELECT entitet_relation.under_id, navne_entitet.navn, entitet.type
       			FROM entitet_relation, navne_entitet, entitet
       			WHERE entitet_relation.type="normal" 
				AND entitet.slettet = 0
				AND entitet_relation.slettet = 0
				AND entitet_relation.over_id='.$id.' 
				AND navne_entitet.id_entitet=entitet_relation.under_id
				AND navne_entitet.id_entitet = entitet.id
				ORDER BY navne_entitet.navn
			');
			foreach($query->result() as $row)
    		{
				$under_id = $row->under_id;
				$under_navn = $row->navn;
				$under[]=array(
					'type' => $row->type,
					'under_id' => $under_id,
					'under_navn' => $under_navn
				);
			}
		}
		
		return $under;
	}

	function under_grupper($type, $id) //finder det der ligger under - VIRKER FOR ENTITETER OG BEGIVENHEDER
	{
		
			
		
		$under = array();
		
		if($type == "entitet") // ENTITET ENTITET ENTITET
		{
			$query = $this->db->query
			('
   	   		 	SELECT entitet_relation.under_id, navne_entitet.navn, entitet.type
       			FROM entitet_relation, navne_entitet, entitet
       			WHERE entitet_relation.type="normal" 
				AND entitet.slettet = 0
				AND entitet_relation.slettet = 0
				AND entitet.type = "gruppe"
				AND entitet_relation.over_id='.$id.' 
				AND navne_entitet.id_entitet=entitet_relation.under_id
				AND navne_entitet.id_entitet = entitet.id
				ORDER BY navne_entitet.navn
			');
			foreach($query->result() as $row)
    		{
				$under_id = $row->under_id;
				$under_navn = $row->navn;
				$under[]=array(
					'type' => $row->type,
					'under_id' => $under_id,
					'under_navn' => $under_navn
				);
			}
		}
		
		return $under;
	}


	function over($type, $id)
	{
	
		$over = array();
		if($type == "begivenhed" || $type == "sted")
		{
			$query = $this->db->query
			('
   	  		  	SELECT '.$type.'_relation.over_id, navne_'.$type.'.navn, '.$type.'.birth, '.$type.'.death 
       			FROM '.$type.'_relation, navne_'.$type.', '.$type.'
				WHERE '.$type.'_relation.under_id='.$id.'
				AND '.$type.'.slettet = 0 
				AND '.$type.'_relation.slettet = 0
				AND '.$type.'.id = '.$type.'_relation.over_id
				AND navne_'.$type.'.id_'.$type.'='.$type.'_relation.over_id
				ORDER BY navne_'.$type.'.navn
			');
			
			$this->load->model('translation/tid_model');
			
			foreach($query->result() as $row)
    		{
				$over_id = $row->over_id;
				$over_navn = $row->navn;
				$over[]=array
				(
					'over_id' => $over_id,
					'over_navn' => $over_navn,
					'birth_navn' => $this->tid_model->tid_navn($row->birth),
					'birth' => $row->birth, 
					'death_navn' => $this->tid_model->tid_navn($row->death),
					'death' => $row->death
				);
			}
		}
		elseif($type =="entitet")
		{
			
			$query = $this->db->query
			('
   	    		SELECT entitet_relation.over_id, navne_entitet.navn
       			FROM entitet_relation, navne_entitet, entitet 
       			WHERE entitet_relation.type="normal" 
				AND entitet.slettet = 0
				AND entitet_relation.slettet = 0
				AND entitet.id = entitet_relation.over_id
				AND entitet_relation.under_id='.$id.' 
				AND navne_entitet.id_entitet=entitet_relation.over_id
				ORDER BY navne_entitet.navn
			');
			foreach($query->result() as $row)
    		{
				$over_id = $row->over_id;
				$over_navn = $row->navn;
				$over[]=array
				(
					'over_id' => $over_id,
					'over_navn' => $over_navn
				);
			}
			
		}
		return $over;
	}
	
	function oplevelser($id_entitet) //finder alle begivenheder, som entiteten har deltaget i
	{
		
		$query = $this->db->query
		("
			SELECT navne_begivenhed.navn, navne_begivenhed.id_begivenhed, begivenhed.birth, begivenhed.death
			FROM navne_begivenhed, begivenhed_entitet_knytning, begivenhed
			WHERE begivenhed_entitet_knytning.id_entitet = ".$id_entitet."
			AND begivenhed.slettet = 0
			AND begivenhed_entitet_knytning.id_begivenhed = navne_begivenhed.id_begivenhed
			AND begivenhed.id = navne_begivenhed.id_begivenhed
			ORDER BY begivenhed.birth DESC	
		");
		
		$oplevelser = array();

		$this->load->model('translation/tid_model');
		
		foreach($query->result() as $row)
		{
			$birth_navn = $this->tid_model->tid_navn($row->birth);
			$death_navn = $this->tid_model->tid_navn($row->death);
		
			$oplevelser[] = array
			(
				'id' => $row->id_begivenhed,
				'navn' => $row->navn,
				'birth' => $row->birth,
				'birth_navn' => $birth_navn,
				'death' => $row->death,
				'death_navn' => $death_navn
			);
		}
		return $oplevelser;
	}
	
	function sted_tilknytning($id_entitet) //finder alle steder, som en entitet er knyttet til.
	{
		$query = $this->db->query
		("
			SELECT navne_sted.navn, navne_sted.id_sted
			FROM entitet_sted, navne_sted, sted
			WHERE entitet_sted.id_entitet = ".$id_entitet."
			AND sted.slettet = 0
			AND navne_sted.id_sted = sted.id
			AND navne_sted.id_sted = entitet_sted.id_sted
			ORDER BY navne_sted.navn	
		");
		
		$steder = array();
		
		foreach($query->result() as $row)
		{
			$steder[] = array
			(
				'id' => $row->id_sted,
				'navn' => $row->navn
			);
		}
		return $steder;
	}
	
	function race($id)
	{
		$query = $this->db->query
		('
			SELECT entitet_relation.over_id, navne_entitet.navn
			FROM entitet_relation, navne_entitet
			WHERE entitet_relation.under_id ='.$id.'
			AND entitet_relation.type="race"
			AND entitet_relation.over_id = navne_entitet.id_entitet
		');
		foreach($query->result() as $row)
		{
			$race_id = $row->over_id;
			$race_navn = $row->navn;
			if($race_navn == 'Elvere') //omdøbning
			{
				$race_navn = 'Elver';
				$race_navn_lille = 'elver';	
			}
			elseif($race_navn == 'Mennesker') //omdøbning
			{
				$race_navn = 'Menneske';
				$race_navn_lille = 'menneske';	
			}
			elseif($race_navn == 'Dværge') //omdøbning
			{
				$race_navn = 'Dværg';
				$race_navn_lille = 'dværg';	
			}
			$race = array
			(
				'race_id' => $race_id,
				'race_navn' => $race_navn
			);
		}
		if(empty($race)) //altså, hvis entiteten ikke har nogen race
		{
			$race = array
			(
				'race_id' => 5, //fordi der skal stå noget.
				'race_navn' => 'ikke opgivet'
			);
		}
		return $race;
	}
	

	
	function basis_relationer($id)
	{
		$query = $this->db->query
		('SELECT stamtabel.over_id, stamtabel.under_id, stamtabel.type, stamtabel.over_navn, stamtabel.under_navn, pluk.id_blik_entitet, pluk.over_titel, pluk.under_titel, stamtabel.id
			FROM 
			(
				SELECT stamtabel1.over_id, stamtabel1.under_id, stamtabel1.type, stamtabel1.over_navn, stamtabel1.id, navne_entitet.navn AS under_navn
				FROM 
				(
					SELECT entitet_relation.over_id, entitet_relation.under_id, entitet_relation.type, navne_entitet.navn AS over_navn, entitet_relation.id
					FROM entitet_relation, navne_entitet
					WHERE 
					(
						entitet_relation.over_id ='.$id.'
						OR entitet_relation.under_id ='.$id.'
					)
					AND entitet_relation.over_id = navne_entitet.id_entitet
					AND entitet_relation.type = "basis"
				) AS stamtabel1, navne_entitet
				WHERE stamtabel1.under_id = navne_entitet.id_entitet
			) AS stamtabel
			LEFT OUTER JOIN
			(
				SELECT id_blik_entitet, over_titel, under_titel, id_relation
				FROM entitet_relation_titel
			) AS pluk 
			ON pluk.id_relation = stamtabel.id
			ORDER BY pluk.id_relation
		');
		
		$relationer = array();
		
		foreach($query->result() as $row)
    	{
			if(isset($row->over_titel))
			{
				$over_titel = $row->over_titel;
			}
			else
			{
				$over_titel = "";
			}
			if(isset($row->under_titel))
			{
				$under_titel = $row->under_titel;
			}
			else
			{
				$under_titel = "";
			}		
			$relationer[] =array
				(
					'relation_id' => $row->id,
					'over_id' => $row->over_id,
					'under_id' => $row->under_id,
					'over_navn' => $row->over_navn,
					'under_navn' => $row->under_navn,
					'type' => $row->type,
					'over_titel' => $over_titel,
					'under_titel' => $under_titel

				);
		}
		
		return $relationer;
	}
	
	function beskrivelse($id_beskrivelse) //henter oplysninger om EEN bestemt beskrivelse
	{
		$beskrivelse = array();
		$query = $this->db->query
		("
			SELECT beskrivelse.id, beskrivelse.omhandler, beskrivelse.omhandler_id, beskrivelse.dato, beskrivelse.type, beskrivelse.tekst, beskrivelse.overskrift, beskrivelse.deltager, beskrivelse.karakter, beskrivelse.hemmelig, deltager.navn, deltager.efternavn, navne_entitet.navn as karakternavn
			FROM beskrivelse, navne_entitet, deltager
			WHERE beskrivelse.id =".$id_beskrivelse."
AND navne_entitet.id_entitet = beskrivelse.karakter
AND deltager.id = beskrivelse.deltager
		");
		foreach($query->result() as $row)
    	{		
			$beskrivelse =array
			(
				'beskrivelse_id' => $row->id,
				'omhandler' => $row->omhandler,
				'omhandler_id' => $row->omhandler_id,
				'dato' => $row->dato,
				'overskrift' => $row->overskrift,
				'tekst' => $row->tekst,
				'type' => $row->type,
				'hemmelig' => $row->hemmelig,
				'deltager_id' => $row->deltager,
				'karakter_id' => $row->karakter,
				'deltager_navn' => $row->navn,
				'deltager_efternavn' => $row->efternavn,
				'karakter_navn' => $row->karakternavn
			);
		}
		return $beskrivelse;
	}
	
	function profession($id)
	{
		$query = $this->db->query
		("
			SELECT profession.navn
			FROM profession
			WHERE profession.id = ".$id."
		");
		
		if ($query->num_rows() > 0)
		{
   			$row = $query->row();
			$profession = $row->navn;
			
		}
		else //altså, hvis der ikke er nogen profession
		{
			
			$profession = "ikke angivet";
		}
		return $profession;
	}
	
	function senest_tilfoejet($type)
	{
		$query = $this->db->query('SELECT * FROM '.$type.' ORDER BY id DESC LIMIT 1');
		$row = $query->row();
		$id = $row->id; //emnets id
		return $id;
	}
	
	function list_koen()
	{
		$list_koen = array("Kvinde", "Mand", "Ukendt", "Udefineret");
		return $list_koen;
	}

	function relation($id) //finder titlerne der hører til en individ-individ relation
	{
		$query = $this->db->query
		('
			SELECT entitet_relation.id, over_id, under_id, id_blik_entitet, over_titel, under_titel, entitet_relation_titel.id as titel_id
			FROM entitet_relation, entitet_relation_titel
			WHERE entitet_relation.id = '.$id.'
			AND entitet_relation.slettet = 0
			AND entitet_relation_titel.id_relation = '.$id.'
		');
		
		$titler = array();

				
		foreach($query->result() as $row)
    	{
		
			$over_stamdata = $this->vis_model->stamdata("entitet",$row->over_id);
			$over_navn = $over_stamdata['navn'];
			$under_stamdata = $this->vis_model->stamdata("entitet",$row->under_id);
			$under_navn = $under_stamdata['navn'];
			//stamdata på den som har beskrevet relationstitlerne...:
			$oprettet_stamdata = $this->vis_model->stamdata("entitet",$row->id_blik_entitet);
			$oprettet_navn = $oprettet_stamdata['navn'];
		
			$titler[] =array
			(
				'relation_id' => $row->id,
				'titel_id' => $row->titel_id,
				'over_id' => $row->over_id,
				'under_id' => $row->under_id,
				'over_navn' => $over_navn,
				'under_navn' => $under_navn,
				'oprettet' => $row->id_blik_entitet,
				'oprettet_navn' => $oprettet_navn,
				'over_titel' => $row->over_titel,
				'under_titel' => $row->under_titel
			);
		}
		
		return $titler;
	}
	
	function relation_raekke($type, $id) //henter een række ud af en relations-tabel
	{
		$query = $this->db->query
		('
			SELECT *
			FROM '.$type.'_relation
			WHERE '.$type.'_relation.id = '.$id.'
		');
		
		$relation_raekke = array();
		
		$row = $query->row();
		if ($query->num_rows() > 0)
		{
			$relation_raekke = array(
				'id' => $row->id,
				'over_id' => $row->over_id,
				'under_id' => $row->under_id,
				'type' => $row->type,
				'slettet' => $row->slettet
			);
		}

		return $relation_raekke;
	}
	
	function relation_titel($id) //tager id'et på en relation titel række og returnerer resten af rækken.
	{
		//echo $id;
		$query = $this->db->query
		('
			SELECT id, id_relation, id_blik_entitet, over_titel, under_titel
			FROM entitet_relation_titel
			WHERE id = '.$id.'
		');
	
		$relation_titel = array();
		$row = $query->row();
		if ($query->num_rows() > 0)
		{
			$relation_titel = array(
				'id' => $row->id,
				'id_relation' => $row->id_relation,
				'id_blik_entitet' => $row->id_blik_entitet,
				'over_titel' => $row->over_titel,
				'under_titel' => $row->under_titel
			);
		}
		//print_r($relation_titel);
		return $relation_titel;

	}

	function racer(){
		$query = $this->db->query
		('
			SELECT race.id_entitet, navne_entitet.navn
			FROM race, navne_entitet
			WHERE race.id_entitet = navne_entitet.id_entitet
		');	

		foreach ($query->result() as $row)
		{ 
		   	$race[] = array(
				'race_navn' => $row->navn,
				'race_id' => $row->id_entitet
			);
		}
		return $race;
	}
	
	
	function grupper_under($id, $grupper)
	{
		$resultat = $this->vis_model->under("entitet", $id);
		foreach($resultat as $r)
			if($r['type'] == "gruppe")
			{
				if(!in_array($r['under_id'],$grupper))
				{
					$grupper[] = $r['under_id'];
				}
			}
		return $grupper;
	}
	
	function individer_under($id, $individer)
	{
		$resultat = $this->vis_model->under("entitet", $id);
		foreach($resultat as $r)
			if($r['type'] == "individ")
			{
				if(!in_array($r['under_id'],$individer))
				{
					$individer[] = $r['under_id'];
				}
			}
		return $individer;
	}
	
	function alle_under($type, $grupper, $individer, $checkarray, $checket)
	{
		if($type == "entitet")
		{
			foreach($checkarray as $check_id)
			{
				if(!in_array($check_id,$checket))
				{
					$grupper = $this->vis_model->grupper_under($check_id, $grupper);
					$individer = $this->vis_model->individer_under($check_id, $individer);
					$checket[] = $check_id;	
				}
			}
			
			$nyt_checkarray = array();
			foreach($grupper as $id)
			{
				if(!in_array($id,$checket))
				{
					$nyt_checkarray[] = $id;
				}
			}
			
			
			if(count($nyt_checkarray) > 0)
			{
				$resultat_2 = $this->vis_model->alle_under($type, $grupper, $individer, $nyt_checkarray, $checket);
				$nyt_checkarray = $resultat_2['checkarray'];
				$grupper = $resultat_2['grupper'];
				$individer = $resultat_2['individer'];
	
			}
			
			$resultat = array(
				'grupper' => $grupper,
				'individer' => $individer,
				'checkarray' => $nyt_checkarray
			);
		}
		
		return $resultat;
		
	}

}



?>
